home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / WebSites / MailingLists / AMOSLIST.0799 / 000081_nobody_Sun Jul 18 09:46:28 1999.msg < prev    next >
Internet Message Format  |  1999-08-02  |  22KB

  1. Received: from onelist.com (pop.onelist.com [209.207.164.205])
  2.     by osf1.gmu.edu (8.8.8/8.8.8) with SMTP id JAA03537
  3.     for <mcox4@osf1.gmu.edu>; Sun, 18 Jul 1999 09:46:27 -0400 (EDT)
  4. Received: (qmail 14103 invoked by alias); 18 Jul 1999 13:46:06 -0000
  5. Received: (qmail 13990 invoked from network); 18 Jul 1999 13:46:03 -0000
  6. Received: from unknown (HELO phantom.golden.net) (199.166.210.30) by pop.onelist.com with SMTP; 18 Jul 1999 13:46:03 -0000
  7. Received: from golden.net (Giark@AS52-10-204.cas-kit.golden.net [209.183.129.204]) by phantom.golden.net (8.9.3/8.9.3) with SMTP id JAA08106 for <amos-list@onelist.com>; Sun, 18 Jul 1999 09:46:12 -0400 (EDT)
  8. From: "Rev. Giark To You" <giark@golden.net>
  9. To: Leto Kauler <amos-list@onelist.com>
  10. Date: Sun, 18 Jul 1999 09:44:27 -0500
  11. Message-ID: <yam7868.1350.2016821688@smtp.golden.net>
  12. In-Reply-To: <yam7868.1585.4829104@mail.netspace.net.au>
  13. X-Mailer: YAM 1.3.4 [020] - Amiga Mailer by Marcel Beck
  14. Mailing-List: list amos-list@onelist.com; contact amos-list-owner@onelist.com
  15. Delivered-To: mailing list amos-list@onelist.com
  16. Precedence: bulk
  17. List-Unsubscribe: <mailto:amos-list-unsubscribe@ONElist.com>
  18. Reply-to: amos-list@onelist.com
  19. Mime-Version: 1.0
  20. Content-type: multipart/mixed; boundary="BOUNDARY.7868.1351.2016821688.1"
  21. Subject: [amos-list] Re: GUI ext, JD & Text files
  22. Status: O
  23. X-Status: 
  24.  
  25. Warning: This is a message in MIME format. Your mail reader does not
  26. support MIME. Some parts of this message will be readable as plain text.
  27. To see the rest, you will need to upgrade your mail reader.
  28.  
  29. This message was composed on an Amiga using the YAM mailer.
  30. YAM is available at http://bitcom.ch/~mbeck/
  31.  
  32. --BOUNDARY.7868.1351.2016821688.1
  33. Content-Type: text/plain; charset=iso-8859-1
  34. Content-Transfer-Encoding: quoted-printable
  35.  
  36. On 18-Jul-99, Leto Kauler wrote:
  37. >I recently downloaded JD and GUI extensions from AMOS Factory.  I
  38. >wanted to have a look at GUI's TCP commands but there are no docs
  39. >included in the archive for them!  Apparently Giark has them... if
  40. >so, could you please send them to me, mate :)
  41.  
  42. I attached the tcp docs to this message for all to get.
  43.  
  44. Well met and godspeed,
  45.                       Rev. Giark
  46.                                              ICQ 12235820
  47.                                           giark@golden.net
  48.                                      12235820@pager.mirabilis.com
  49.                                       http://24.112.23.20/~giark/
  50.                             .--------------------------------------------=
  51. --.
  52.                             |      ______  ______    _____  Coming Soon! =
  53.   |
  54.                             |     / ____/ / __  /   / ___ \ =B7SoloTrek I=
  55. II  |
  56.                             |    / /__   / /_/ /   / /  / /              =
  57.   |
  58.                             |   / ___/  / ____ \  / /  / /  =B7Cap'n Bubb=
  59. a   |
  60.                             |  / /     / /___/ / / /  / /   And The Nasty=
  61.   |
  62.                             | /_/     /_______/ /_/  /_/    Alien Menace =
  63.   |
  64.                             |    Fly By Nite Videe-Oh!                   =
  65.   |
  66.                             |    Amiga 1200 030/50MHz 2Mb Chip 32Mb Fast =
  67.   |
  68.                             `--------------------------------------------=
  69. --'
  70.  
  71. --BOUNDARY.7868.1351.2016821688.1
  72. Content-Type: text/plain; charset=iso-8859-1; name="GUI-TCP.guide"
  73. Content-Transfer-Encoding: quoted-printable
  74.  
  75. @DATABASE TCP Commands
  76.  
  77. @NODE Main "GUI Extension TCP Commands"
  78.  
  79.                                    @{b}GUI Extension@{ub}
  80.  
  81.                                    @{u}TCP Commands@{uu}
  82.                                      @{u}25/08/98@{uu}
  83.  
  84.                                   @{" Introduction " LINK "Introduction"}=
  85.  
  86.                                   @{"   Commands   " LINK "Commands"}
  87.                                   @{" GUI Compiler " LINK "Compiler"}
  88. @ENDNODE
  89.  
  90. @NODE "Introduction"
  91. @NEXT "Compiler"
  92. @PREV "Main"
  93. @TOC "Main"
  94.                                   !!!
  95.                                   o o
  96.                   +-----------oOO-(_)-OOo----------------+
  97.                   |                                      |
  98.                   |  Pietro Ghizzoni - Dairymen Soft     |
  99.                   |     E-Mail:  ghizzo@agonet.it        |
  100.                   |            Team AMIGA                |
  101.                   |                                      |
  102.                   | Amos Professional Team Coordinator   |
  103.                   |                                      |
  104.                   +--------------------------------------+
  105.  
  106. Well met and godspeed,
  107.                       Giark
  108.                                              ICQ 12235820
  109.                                        giark@hicksville.dyn.ml.org
  110.                                 http://www.hicksville.dyn.ml.org/~giark/
  111.                             .--------------------------------------------=
  112. --.
  113.                             |      ______  ______    _____               =
  114.   |
  115.                             |     / ____/ / __  /   / ___ \ Makers of    =
  116.   |
  117.                             |    / /__   / /_/ /   / /  / / SoloTrek II  =
  118.   |
  119.                             |   / ___/  / ____ \  / /  / /               =
  120.   |
  121.                             |  / /     / /___/ / / /  / /   CyberSpace BB=
  122. S |
  123.                             | /_/     /_______/ /_/  /_/    (519)579-0072=
  124.   |
  125.                             |    Fly By Nite Videe-Oh!      (519)579-0173=
  126.   |
  127.                             |                                            =
  128.   |
  129.                             |    Amiga 1200 030/50MHz 2Mb Chip 32Mb Fast =
  130.   |
  131.                             `--------------------------------------------=
  132. --'
  133.  
  134. This document was created by Giark (C. Edward Stewart) after examining th=
  135. e
  136. TCP example programs and email response from Pietro Ghizzoni.
  137.  
  138. These docs cover version 1.80.
  139. @ENDNODE
  140.  
  141. @NODE "Compiler"
  142. @NEXT "Commands"
  143. @PREV "Introduction"
  144. @TOC "Main"
  145. The GUI Compiler
  146.  
  147. You don't need the GUI Compiler for your GUI Extension programs. You can =
  148. use
  149. the standard AMOSPro compiler without problems. The GUI Extension is a
  150. standard AMOSPro v2 Extension and so it works fine with the AMOSPro compi=
  151. ler,
  152. too.
  153.  
  154. If you use the GUI compiler ALL the AMOS commands work without problems. =
  155. It
  156. is when you use Gui Amiga 1, shutting off unnecessary AMOS functions, tha=
  157. t
  158. you may run into difficulty.
  159.  
  160. How does the GUI compiler work? What's the difference? The main differenc=
  161. e
  162. between the GUI and AMOSPro compilers is that the compiled code generated=
  163.  by
  164. the GUI compiler hides all the AMOS "system unfriendly" code. If you zap =
  165. the
  166. code you'll see nothing AMOS related. If you zap the code generated by th=
  167. e
  168. standard AMOSPro compiler, you'll find tons of AMOS stuff, like the names=
  169.  
  170. of all the AMOS extensions installed in your system and other preferences=
  171. =2E
  172.  
  173. If you trace an AMOS compiled program using SnoopDOS or other programs,
  174. you'll notice other AMOS activities, like search for and freeze any other=
  175.  
  176. running AMOS programs, search for the mysterious AMOS_Switcher and other
  177. stuff. The GUI Compiler removes these useless operations.
  178.  
  179. If you run a virus checker together with AMOS, it will probably pop up a
  180. warning message because some system functions have been modified.
  181.  
  182. For experts:
  183. - Graphics.library   LoadView() only on AGA machines
  184. - Intuition.library  EasyRequestArgs()
  185. - Intuition.library  AutoRequest()
  186.  
  187. the GUI Compiler removes them as well.
  188.  
  189. So essentially the GUI compiler:
  190. - hides the AMOS rubbish in the code.
  191. - makes your AMOS programs able to run in multitasking with the other AMO=
  192. S
  193.   programs. As you know you can't run two or more AMOS programs together,=
  194.  
  195.   because only the last one will run while the others will be freezed. No=
  196. w
  197.   you can!
  198. - makes your programs more "clean" and virus checkers warnings free.
  199.  
  200. Since so many AMOS tags have been removed from the code, it is not a good=
  201.  
  202. idea to use it in AMOS games, for example. The GUI Compiler is specifical=
  203. ly
  204. designed for {B}Workbench{UB} applications. If your program runs in the W=
  205. orkbench
  206. environment, it doesn't need all the AMOS patches and hacks. For this rea=
  207. son,
  208. Pietro has created the GUI Compiler.
  209.  
  210. If you need to open AMOS screens and related stuff, use the AMOSPro compi=
  211. ler.
  212. If you need a nice Workbench GUI for your programs, use the GUI compiler.=
  213.  
  214.  
  215. About the commands that don't work anymore, this isn't a GUI Compiler eff=
  216. ect.
  217. It happens if you put the Gui Amiga 1 command at the start of your progra=
  218. m.
  219.  
  220. What does Gui Amiga 1 do and why don't some commands work anymore? Simple=
  221. =2E
  222. The Gui Amiga 1 command disables other AMOS internal functions in order t=
  223. o
  224. make your program a bit more OS friendly. In particular, this command rem=
  225. oves
  226. the AMOS interrupt routine. Because of this, all the VBL/interrupt-based
  227. commands/functions don't work.
  228.  
  229. Mainly:
  230. - Music
  231. - Samples
  232. - AMAL
  233. - VBL commands and timer
  234. - AMOS gfx
  235.  
  236. If you're creating a Workbench program, usually you don't need the above
  237. commands, so it's a good idea to disable them.
  238.  
  239. If you do need them, don't call Gui Amiga 1 and everything will work as
  240. usual. Therefore, Pietro suggests that you use other extensions for music=
  241.  and
  242. samples, because the AMOS music extension is really badly coded.
  243. @ENDNODE
  244.  
  245. @NODE "Commands"
  246. @NEXT "Tcp Address"
  247. @PREV "Compiler"
  248. @TOC "Main"
  249.  
  250.                                @{u}The TCP Command List@{uu}
  251.  
  252. @{" =3DTcp Address          " LINK "Tcp Address"}
  253. @{" =3DTcp Buffer           " LINK "Tcp Buffer"}
  254. @{" =3DTcp Channel          " LINK "Tcp Channel"}
  255. @{" =3DTcp Check            " LINK "Tcp Check"}
  256. @{" Tcp Close             " LINK "Tcp Close"}
  257. @{" Tcp Close A           " LINK "Tcp Close"}
  258. @{" =3DTcp Code             " LINK "Tcp Code"}
  259. @{" =3DTcp Count            " LINK "Tcp Count"}
  260. @{" Tcp Download A to B  *" LINK "Tcp Download"}
  261. @{" =3DTcp Error            " LINK "Tcp Error"}
  262. @{" =3DTcp F Open(A,B$,C)   " LINK "Tcp F Open"}
  263. @{" =3DTcp Free(A)          " LINK "Tcp Free"}
  264. @{" =3DTcp Get(A,B,C)       " LINK "Tcp Get"}
  265. @{" Tcp Limit A           " LINK "Tcp Limit"}
  266. @{" =3DTcp Line$(A)         " LINK "Tcp Line$"}
  267. @{" =3DTcp Open(A,B$)       " LINK "Tcp Open"}
  268. @{" =3DTcp Packet           " LINK "Tcp Packet"}
  269. @{" =3DTcp Put(A,B,C)       " LINK "Tcp Put"}
  270. @{" =3DTcp Put$(A,B$)       " LINK "Tcp Put$"}
  271. @{" =3DTcp Read(A,B,C,D)    " LINK "Tcp Read"}
  272. @{" Tcp Remove A          " LINK "Tcp Remove"}
  273. @{" Tcp Reset             " LINK "Tcp Reset"}
  274. @{" =3DTcp Response         " LINK "Tcp Response"}
  275. @{" =3DTcp Save(A,B,C To D)*" LINK "Tcp Save"}
  276. @{" =3DTcp Send(A,B,C,D)    " LINK "Tcp Send"}
  277. @{" =3DTcp Send$(A,B$,C)    " LINK "Tcp Send$"}
  278. @{" Tcp Set A,B           " LINK "Tcp Set"}
  279. @{" =3DTcp Signal(A,B,C)    " LINK "Tcp Signal"}
  280. @{" =3DTcp Time             " LINK "Tcp Time"}
  281. @{" =3DTcp Total           *" LINK "Tcp Total"}
  282. @{" Tcp Trash             " LINK "Tcp Trash"}
  283. @{" =3DTcp Type             " LINK "Tcp Type"}
  284. @{" =3DTcp User             " LINK "Tcp Remove"}
  285.  
  286. * - these commands are new and have not been fully documented yet. Use th=
  287. em at
  288.     your own risk.
  289. @ENDNODE
  290.  
  291. @NODE "Tcp Address"
  292. @NEXT "Tcp Buffer"
  293. @PREV "Commands"
  294. @TOC "Main"
  295. =3DTcp Address
  296.  
  297. Returns the address of the last asynchronous TCP/IP packet sent. This is
  298. only useful with @{"Tcp Set" LINK "Tcp Set"}.
  299.  
  300. Example:
  301. A=3DTcp Read(1,Start(10),100,0) : ADR=3DTcp Address
  302.  
  303. In order to obtain the right value, you must call this command just after=
  304.  the
  305. asynchronous call or at least before another asynchronous call or gui wai=
  306. t.
  307. @ENDNODE
  308.  
  309. @NODE "Tcp Buffer"
  310. @NEXT "Tcp Channel"
  311. @PREV "Tcp Address"
  312. @TOC "Main"
  313. =3DTcp Buffer
  314.  
  315. Returns the buffer address associated with the TCP/IP message returned by=
  316.  
  317. Gui Wait.
  318.  
  319. e.g if you receive the result of a read request Tcp Buffer is the address=
  320.  
  321. where the data is stored.
  322. @ENDNODE
  323.  
  324. @NODE "Tcp Channel"
  325. @NEXT "Tcp Check"
  326. @PREV "Tcp Buffer"
  327. @TOC "Main"
  328. =3DTcp Channel
  329.  
  330. Returns the channel number associated with the TCP/IP message returned by=
  331.  
  332. Gui Wait
  333. @ENDNODE
  334.  
  335. @NODE "Tcp Check"
  336. @NEXT "Tcp Close"
  337. @PREV "Tcp Channel"
  338. @TOC "Main"
  339. =3DTcp Check
  340.  
  341. Check to see if there is data waiting to be read. Returns True (-1) or
  342. False (0).
  343. @ENDNODE
  344.  
  345. @NODE "Tcp Close"
  346. @NEXT "Tcp Code"
  347. @PREV "Tcp Check"
  348. @TOC "Main"
  349. Tcp Close
  350.  
  351. Close all open TCP connections
  352.  
  353. Tcp Close <logical file number>
  354.  
  355. Close <logical file number> TCP connection
  356. @ENDNODE
  357.  
  358. @NODE "Tcp Code"
  359. @NEXT "Tcp Count"
  360. @PREV "Tcp Close"
  361. @TOC "Main"
  362. =3DTcp Code
  363.  
  364. When you receive a TCP/IP message (Gui Wait returns -9) you can obtain th=
  365. e
  366. associated code
  367.  
  368. e.g. if you receive the result of a read request, Tcp Code returns the nu=
  369. mber
  370. of bytes received. If it's a write request, Tcp Code returns the number o=
  371. f
  372. bytes transferred.
  373. @ENDNODE
  374.  
  375. @NODE "Tcp Count"
  376. @NEXT "Tcp Download"
  377. @PREV "Tcp Code"
  378. @TOC "Main"
  379. =3DTcp Count
  380.  
  381. This function returns the number of asynchronous requests sent to the
  382. device that are waiting for responses.
  383. @ENDNODE
  384.  
  385. @NODE "Tcp Download"
  386. @NEXT "Tcp Error"
  387. @PREV "Tcp Count"
  388. @TOC "Main"
  389. Tcp Download A To B
  390.  
  391. @ENDNODE
  392.  
  393. @NODE "Tcp Error"
  394. @NEXT "Tcp F Open"
  395. @PREV "Tcp Download"
  396. @TOC "Main"
  397. =3DTcp Error
  398.  
  399. This function returns the DOS error code of the last error. When @{"Tcp C=
  400. ode" LINK "Tcp Code"}
  401. equals -1 there has been a transfer error.
  402. @ENDNODE
  403.  
  404. @NODE "Tcp F Open"
  405. @NEXT "Tcp Free"
  406. @PREV "Tcp Error"
  407. @TOC "Main"
  408. =3DTcp F Open(<logical file number>,<path$>)
  409.  
  410. Open a file to write your incoming TCP data to.
  411.  
  412. e.g. X=3DTcp F Open(2,"RAM:IRC.log")
  413. @ENDNODE
  414.  
  415. @NODE "Tcp Free"
  416. @NEXT "Tcp Get"
  417. @PREV "Tcp F Open"
  418. @TOC "Main"
  419. =3DTcp Free()
  420. This will return the first free socket, starting from the specified one. =
  421. This
  422. command is useful if you have to handle a lot of TCP connections and need=
  423.  to
  424. know which sockets are free for a connection.
  425.  
  426. Example:
  427. You are currently using TCP channels 1, 2 and 3.
  428.  
  429. A=3DTcp Free(1)
  430.  
  431. A will contain 4.
  432. @ENDNODE
  433.  
  434. @NODE "Tcp Get"
  435. @NEXT "Tcp Limit"
  436. @PREV "Tcp Free"
  437. @TOC "Main"
  438. =3DTcp Get(<logical file number>,<buffer>,<size>)
  439.  
  440. This function works the same way as @{"Tcp Read" LINK "Tcp Read"} only, l=
  441. ike @{"Tcp Put" LINK "Tcp Put"}, the
  442. command is @{I}synchronous@{UI}. The program will halt and wait for a
  443. message to come from the TCP connection.
  444.  
  445. This command can be set to time out by using the @{"Tcp Limit" LINK "Tcp =
  446. Limit"} command.
  447.  
  448. The function returns the number of bytes read.
  449. @ENDNODE
  450.  
  451. @NODE "Tcp Limit"
  452. @NEXT "Tcp Line$"
  453. @PREV "Tcp Get"
  454. @TOC "Main"
  455. Tcp Limit <value>
  456.  
  457. Set a timeout period for @{"Tcp Get" LINK "Tcp Get"} and @{"Tcp Get$" LIN=
  458. K "Tcp Get$"} commands. If there is no data
  459. available after the specified value (the value must be set as a Wait
  460. command would be, in jiffies (50=3D1 Second (PAL) 60=3D1 Second (NTSC))),=
  461.  the
  462. @{"Tcp Get" LINK "Tcp Get"} command will exit and return -1.
  463. @ENDNODE
  464.  
  465. @NODE "Tcp Line$"
  466. @NEXT "Tcp Open"
  467. @PREV "Tcp Limit"
  468. @TOC "Main"
  469. =3DTcp Line$(<logical file number>)
  470.  
  471. Reads a line of text from the specified channel. As with @{"Tcp Get" LINK=
  472.  "Tcp Get"}, you can
  473. specify the timeout period using @{"Tcp Limit" LINK "Tcp Limit"}.
  474. @ENDNODE
  475.  
  476. @NODE "Tcp Open"
  477. @NEXT "Tcp Packet"
  478. @PREV "Line$"
  479. @TOC "Main"
  480. =3DTcp Open(<logical file number>,<port data$>)
  481.  
  482. Open a TCP channel using the port data
  483.  
  484. e.g. X=3DTcp Open(1,"timequake.unterlab.org/6667") to open a port to IRC
  485. @ENDNODE
  486.  
  487. @NODE "Tcp Packet"
  488. @NEXT "Tcp Put"
  489. @PREV "Tcp Open"
  490. @TOC "Main"
  491. =3DTcp Packet
  492.  
  493. Returns the Packet ID of the last TCP/IP message received.
  494.  
  495. e.g.
  496.  
  497. A=3DTcp Read(1,Start(10),100)
  498. B=3DTcp Send(2,Start(11),100)
  499. C=3DTcp Send(3,Start(12),100)
  500. D=3DGui Wait
  501. IF D=3D-9 : Rem TCP/IP message received.
  502.  PKT=3DTcp Packet
  503.  If PKT=3DA : Rem received the answer to A request
  504.  Else If PKT=3DB : Rem received the answer to B request
  505.  Else If PKT=3DC : Rem received the answer to C request
  506. Endif
  507. @ENDNODE
  508.  
  509. @NODE "Tcp Put"
  510. @NEXT "Tcp Put$"
  511. @PREV "Tcp Packet"
  512. @TOC "Main"
  513. =3DTcp Put(<logical file number>,<buffer>,<size>)
  514.  
  515. This command works the same way as @{"Tcp Send" LINK "Tcp Send"}. The dif=
  516. ference is that Tcp Put
  517. is a @{I}synchronous@{UI} command. The program will halt until the data i=
  518. s
  519. sent. This means you don't have to monitor the number of bytes sent, etc.=
  520.  
  521. yourself.
  522.  
  523. The function returns the number of bytes sent.
  524. @ENDNODE
  525.  
  526. @NODE "Tcp Put$"
  527. @NEXT "Tcp Read"
  528. @PREV "Tcp Put"
  529. @TOC "Main"
  530. =3DTcp Put$(<logical file number>,<string$>)
  531.  
  532. Send a string to the TCP port
  533.  
  534. e.g. X=3DTcp Put$(1,"NICK Giark")
  535.  
  536. This command works the same way as @{"Tcp Send$" LINK "Tcp Send$"}. The d=
  537. ifference is that Tcp
  538. Put$ is a @{I}synchronous@{UI} command. The program will halt until the d=
  539. ata
  540. is sent. This means you don't have to monitor the number of bytes sent, e=
  541. tc.
  542. yourself.
  543.  
  544. The function returns the number of bytes sent.
  545. @ENDNODE
  546.  
  547. @NODE "Tcp Read"
  548. @NEXT "Tcp Remove"
  549. @PREV "Tcp Put$"
  550. @TOC "Main"
  551. =3DTcp Read(<logical file number>,<buffer>,<size>)
  552.  
  553. Get <size> bytes from the channel, and put them into the <buffer>, a
  554. previously defined AMOS bank.
  555.  
  556. e.g  S=3DStart(10) : X=3DTcp Read(1,S,100)
  557.  
  558. Using the bank as a buffer allows the command to run asynchronously. The
  559. command doesn't wait for data to become available, it just sends a reques=
  560. t
  561. to the channel. When there is data to be read, Gui Wait will inform you.
  562.  
  563. A very simple example:
  564.  
  565. S=3DStart(10)
  566. A=3DTcp Read(1,S,100)
  567. B=3DGui Wait
  568. If B=3D-9 : Rem TCP/IP message received
  569.  D=3DTcp Code : Rem D=3Dnumber of bytes received
  570.  B=3DTcp Buffer : Rem B=3Daddress of the buffer where the data is stored
  571. EndIf
  572.  
  573. The function returns the Packet ID.
  574. @ENDNODE
  575.  
  576. @NODE "Tcp Remove"
  577. @NEXT "Tcp Reset"
  578. @PREV "Tcp Read"
  579. @TOC "Main"
  580. Tcp Remove A
  581. Disables the @{"Tcp Signal" LINK "Tcp Signal"} mode for the specified cha=
  582. nnel.
  583. You @{b}must@{ub} call this command when you've received a signal from th=
  584. e
  585. TCP channel.
  586. @ENDNODE
  587.  
  588. @NODE "Tcp Reset"
  589. @NEXT "Tcp Response"
  590. @PREV "Tcp Remove"
  591. @TOC "Main"
  592. Tcp Reset
  593.  
  594. Resets the TCP internal timer. After using @{"Tcp Time" LINK "Tcp Time"} =
  595. you can read the amount
  596. of time elapsed since the last Tcp Reset.
  597. @ENDNODE
  598.  
  599. @NODE "Tcp Response"
  600. @NEXT "Tcp Save"
  601. @PREV "Tcp Reset"
  602. @TOC "Main"
  603. =3DTcp Response
  604.  
  605. Some servers return ASCII responses with numeric codes on the front like:=
  606.  
  607.  
  608. 220 Welcome to galactica.it
  609.  
  610. This command lets you get the numeric value for use in your program (Grea=
  611. t for
  612. IRC!). Call this command after the @{"Tcp Line$" LINK "Tcp Line$"} comman=
  613. d.
  614.  
  615. Example:
  616. A$=3DTcp Line$ : CD=3DTcp Response
  617.  
  618. Using the example above, CD would be 220.
  619. @ENDNODE
  620.  
  621. @NODE "Tcp Save"
  622. @NEXT "Tcp Send"
  623. @PREV "Tcp Response"
  624. @TOC "Main"
  625. =3DTcp Save(B,C,D To E)
  626.  
  627. @ENDNODE
  628.  
  629. @NODE "Tcp Send"
  630. @NEXT "Tcp Send$"
  631. @PREV "Tcp Save"
  632. @TOC "Main"
  633. =3DTcp Send(<logical file number>,<buffer>,<code>)
  634.  
  635. Send the specified number of bytes, starting from <buffer>, to the channe=
  636. l.
  637. Like @{"Tcp Read" LINK "Tcp Read"}, this command is asynchronous. The com=
  638. mand doesn't wait for the
  639. end of the transfer, but quits immediately so your program can continue i=
  640. ts
  641. work. When the transfer is complete, you will receive a TCP/IP message. S=
  642. ee
  643. the @{"above" LINK "Tcp Read"} example.
  644.  
  645. e.g. X=3DTcp Send(1,S,125)
  646.  
  647. The function returns the Packet ID.
  648. @ENDNODE
  649.  
  650. @NODE "Tcp Send$"
  651. @NEXT "Tcp Set"
  652. @PREV "Tcp Send"
  653. @TOC "Main"
  654. =3DTcp Send$(<logical file number>,<string$>)
  655.  
  656. Send <string$> to the specified <logical file number>
  657.  
  658. The function returns the Packet ID.
  659. @ENDNODE
  660.  
  661. @NODE "Tcp Set"
  662. @NEXT "Tcp Signal"
  663. @PREV "Tcp Send$"
  664. @TOC "Main"
  665. Tcp Set <TCP Packet Address>,<User Value>
  666.  
  667. All the asynchronous commands have a new parameter added. It is a user da=
  668. ta.
  669. This value will be returned to you when the TCP/IP packet comes back usin=
  670. g the
  671. @{"=3DTcp User" LINK "Tcp User"} command. You can change the value of the=
  672.  user
  673. data using Tcp Set.
  674.  
  675. Note: You can only modify this value @{b}before@{ub} calling Gui Wait. If=
  676.  you
  677. try to modify a packet already returned by Gui Wait, your system will cra=
  678. sh.
  679. You can safely use this command to modify a Tcp Signal packet because it
  680. remains present until you remove it.
  681. @ENDNODE
  682.  
  683. @NODE "Tcp Signal"
  684. @NEXT "Tcp Time"
  685. @PREV "Tcp Set"
  686. @TOC "Main"
  687. =3DTcp Signal(<Tcp Channel>,<Mode>,<User Data>)
  688.  
  689. Tcp Signal is a major improvement to the TCP handling system. Using this
  690. command activates the signal mode on the specified channel. Whenthere is =
  691. data
  692. ready for download, you will be informed.
  693.  
  694. Gui Wait will still return a -9 to indicate a TCP message, but @{"Tcp Typ=
  695. e" LINK "Tcp Type"}
  696. will return 20 to indicate a signal. You can also use the @{"Tcp Packet" =
  697. LINK "Tcp Packet"} command
  698. and compare its value with the packet ID returned by Tcp Signal. You only=
  699.  need to
  700. call Tcp Signal once.
  701.  
  702. The advantage is that, unlike @{"Tcp Read" LINK "Tcp Read"}, nothing will=
  703.  be downloaded or
  704. modified. You will just be informed that there is data to be dealt with a=
  705. nd
  706. you can decide for yourself how best to handle it.
  707.  
  708. This command is the asynchronous version of @{"Tcp Check" LINK "Tcp Check=
  709. "}.
  710. @ENDNODE
  711.  
  712. @NODE "Tcp Time"
  713. @NEXT "Tcp Total"
  714. @PREV "Tcp Signal"
  715. @TOC "Main"
  716. =3DTcp Time
  717.  
  718. Returns the amount of time elapsed since the last @{"Tcp Reset" LINK "Tcp=
  719.  Reset"}.
  720. @ENDNODE
  721.  
  722. @NODE "Tcp Total"
  723. @NEXT "Tcp Trash"
  724. @PREV "Tcp Time"
  725. @TOC "Main"
  726. =3DTcp Total
  727.  
  728. @ENDNODE
  729.  
  730. @NODE "Tcp Trash"
  731. @NEXT "Tcp Type"
  732. @PREV "Tcp Total"
  733. @TOC "Main"
  734. Tcp Trash
  735.  
  736. Clear @{B}all@{UB} messages from the TCP/IP port. Take care when using th=
  737. is command.
  738. @ENDNODE
  739.  
  740. @NODE "Tcp Type"
  741. @NEXT "Tcp User"
  742. @PREV "Tcp Trash"
  743. @TOC "Main"
  744. =3DTcp Type
  745.  
  746. Returns the type of TCP/IP message received.
  747.  
  748. 87 (Asc("R")) - Received an answer to a read request
  749. 98 (Asc("W")) - Received an answer to a send request
  750. @ENDNODE
  751.  
  752. @NODE "Tcp User"
  753. @PREV "Tcp Type"
  754. @TOC "Main"
  755. =3DTcp User
  756.  
  757. Returns the user data of the last TCP/IP packet received.
  758. @ENDNODE
  759.  
  760. --BOUNDARY.7868.1351.2016821688.1--
  761.  
  762.